package com.twinkle.utils;


import com.twinkle.model.MenuTree;

import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;

/**
 * @title: MenuUtil
 * @description:
 * @author: Paul
 * @date: 2023/3/31 16:34
 */
public class MenuUtil {
    /**
     * 递归查询子节点
     * @param root  根节点
     * @param all   所有节点
     * @return 根节点信息
     */
    public static List<MenuTree> getChildrens(MenuTree root, List<MenuTree> all) {
        List<MenuTree> children = all.stream().filter(m -> {
            return Objects.equals(m.getParentId(), root.getId());
        }).map(
                (m) -> {
                    m.setChildList(getChildrens(m, all));
                    return m;
                }
        ).collect(Collectors.toList());
        return children;
    }
}
